package com.atguigu.springboot.componet;

import org.springframework.boot.web.servlet.error.DefaultErrorAttributes;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.WebRequest;

import java.util.Map;

//加上该注解,将我们自定义的错误信息域对象加入容器中
@Component
public class MyErrorAttributes extends DefaultErrorAttributes {
	
	//重写getErrorAttributes()方法,将原数据取出并加入我们自己的数据
	@Override
	public Map<String, Object> getErrorAttributes(WebRequest webRequest, boolean includeStackTrace) {
		//调用父类方法获取到原本的参数信息
		Map<String, Object> errorAttributes = super.getErrorAttributes(webRequest, includeStackTrace);
		
		//从request中获取我们从错误处理器中转发的信息,webRequest就是springboot对request对象的封装
		//0表示request作用域,1表示session作用域,可查看源码
		String data = (String) webRequest.getAttribute("data", 0);
		String message_1 = (String) webRequest.getAttribute("message_1", 0);
		
		//将我们的信息加入errorAttributes错误信息的作用域中
		errorAttributes.put("data",data);
		errorAttributes.put("message_1",message_1);
		
		//返回这个map错误信息
		return errorAttributes;
	}
}
